REPLACE-Baustein
Kurz-Information
Name |
|
→POE-Typ |
|
Kategorie |
Standard (non-safe), String, Baustein mit interner Fehlerdiagnose |
Konform zur →IEC-Norm |
derzeit eingeschränkt |
Grafische Schnittstelle |
|
Verfügbar ab |
Version 1.31.0 (für Neuron Power Engineer) – Anfangsvariante Version 3.8.0 (für Bibliothek |
Funktionalität
Der Baustein ersetzt einen Teil in einem String durch einen anderen String und liefert den neu entstandenen String.
Am Eingang IN1
geben Sie eine Zeichenkette ein (= 1. String). Am Eingang IN2
geben Sie weitere Zeichenkette ein (= 2. String). Am Eingang L
geben Sie die Anzahl der zu ersetzenden Zeichen ein (= Länge des zu löschenden Teils). Am Eingang P
geben Sie die Position im 1. String ein. Ab dieser Position werden die Zeichen im 1. String gelöscht und stattdessen wird der 2. String eingefügt.
Spezialfälle (siehe unter "Beispiel für Verwendung im ST-Editor"):
-
Bei
L = 0
werden keine Zeichen im 1. String gelöscht. Der 2. String wird an der PositionP
eingefügt. Der AusgangENO
wird hier auf den WertTRUE
gesetzt. -
Falls ein negativer Wert bei
L
eingegeben ist, werden die entsprechenden Zeichen vor der PositionP
gelöscht. Der AusgangENO
wird hier auf den WertFALSE
gesetzt. Falls Zeichen außerhalb des sichtbaren Bereichs gelöscht würden (vor Position 1), werden gar keine Zeichen gelöscht und eingefügt. -
Falls der Wert
0
oder ein negativer Wert beiP
eingegeben ist, werden keine Zeichen gelöscht und eingefügt. Auch hier wird der AusgangENO
auf den WertFALSE
gesetzt. -
Falls der Wert für
L
und/oderP
> die Länge des Strings fürIN1
ist, werden keine Zeichen gelöscht oder nur die Zeichen, die im sichtbaren Bereich liegen. BeiP
> Länge des Strings wird der neu entstandene String mit Leerzeichen bis vor die PositionP
aufgefüllt, abP
wird der 2. String eingefügt. Auch hier wird der AusgangENO
auf den WertFALSE
gesetzt.
Neuron Power Engineer bestimmt die Positionen von Zeichen in einem String so: 1
, 2
, ..., n. Dabei entspricht 1
dem Zeichen ganz links im String und n
der Länge des Strings.
Literal mit Kombinationen von 3 Zeichen, beginnend mit dem Dollar-Zeichen ($
) und gefolgt von 2 Hexadezimal-Ziffern (z.B. für Sonderzeichen – wie oben erwähnt) Beispiel: Der String '$B15
' (entspricht '±5
') besteht somit aus 2 Zeichen. Weitere Beispiele für diese Kombinationen finden Sie unter →Zeichenfolge-Literal.
Eingänge, Ergebniswert
|
Bezeichner |
Beschreibung |
|
---|---|---|---|
Eingänge: |
|
|
1. Eingangswert (= String, in dem ersetzt wird) |
|
|
2. Eingangswert (= String, der eingefügt wird) |
|
|
|
Anzahl der zu ersetzenden Zeichen |
|
|
|
Startposition im 1. Eingangswert |
|
Ergebniswert: |
– |
|
|
Der Eingang EN
und der Ausgang ENO
sind für den →Aufruf des Bausteins verfügbar. Siehe "Ausführungssteuerung: EN, ENO" für Informationen zum Eingang EN
und zum Ausgang ENO
.
Informieren Sie sich unter:
-
"Bausteine für sichere Logik", ob dieser Baustein für das Entwickeln von sicherheitsrelevanten Anwendungen unterstützt wird.
-
"Kennzeichnung von sicherer Logik im FBS-Editor", welche Auswirkung die Verwendung des Bausteins als Baustein für sichere Logik hat.
Interne Fehlerdiagnose für Baustein
Der Baustein prüft den vermeintlichen Ergebniswert.
Falls der Ergebniswert im zur Verfügung stehenden Speicher nicht abgebildet werden kann (der Ergebniswert ist zu groß), wird der Ausgang ENO
des Bausteins auf den Wert FALSE
(oder eine Entsprechung) gesetzt. Wenn Sie Bausteine mit STRING
-Werten verschachtelt verwenden, beachten Sie, dass der zur Verfügung stehende Speicher für STRING
-Werte beschränkt ist (siehe "Wie kann der Ergebniswert bei verschachtelten String-Bausteinen vollständig abgebildet werden?" für Details und Beispiele).
Bei diesem Fehlerfall kann noch der folgende Spezialfall auftreten: Falls das Ergebnis des Aufrufs auf eine Variable zugewiesen wird, die auch als Eingangsparameter für den Aufruf dieses Bausteins verwendet wird (siehe folgendes Beispiel), wird in diesem Fehlerfall der Ausgang ENO
der umfassenden →POE auf den Wert FALSE
gesetzt (jedoch nicht der Ausgang ENO
des aufgerufenen Bausteins). Beispiel: ResultString := REPLACE(IN1 := 'abc', IN2 := ResultString, L := 2, P := 1);
Zusätzlich prüft der Baustein die anliegenden Werte, ob auf nicht vorhandene Zeichenpositionen im String zugegriffen wird. Dies ist der Fall, wenn der Wert für L
oder P
> die Länge des Stringwerts für IN1
ist, ein negativer Wert bei L
oder P
eingegeben ist oder der Wert 0
bei P
eingegeben ist. Auch in diesen Fällen wird der Ausgang ENO
des Bausteins auf den Wert FALSE
(oder eine Entsprechung) zurückgesetzt.
Beispiel für Verwendung im ST-Editor
|
Bei der Erstellung Ihrer Anwendung im ST-Editor erstellen Sie den Aufruf eines Bausteins, indem Sie den laut Syntax erforderlichen Text eintippen oder die Inhaltshilfe verwenden.